home *** CD-ROM | disk | FTP | other *** search
/ Mac Cube 4: Multimedia Applications / MacCube Volume 4: Multimedia Applications.iso / Graphics / POV Ray / POVSOURCE / SOURCE / Animate.h < prev    next >
Text File  |  1993-11-30  |  4KB  |  89 lines

  1. /*==============================================================================
  2. Project:    POV
  3.  
  4. File:    Animate.h
  5.  
  6. Description:
  7. Routines to handle the clock animation variable prompting for POV-Ray.
  8.  
  9. ------------------------------------------------------------------------------
  10. Author:
  11.     Eduard [esp] Schwan
  12. ------------------------------------------------------------------------------
  13.     from Persistence of Vision Raytracer
  14.     Copyright 1993 Persistence of Vision Team
  15. ------------------------------------------------------------------------------
  16.     NOTICE: This source code file is provided so that users may experiment
  17.     with enhancements to POV-Ray and to port the software to platforms other 
  18.     than those supported by the POV-Ray Team.  There are strict rules under
  19.     which you are permitted to use this file.  The rules are in the file
  20.     named POVLEGAL.DOC which should be distributed with this file. If 
  21.     POVLEGAL.DOC is not available or for more info please contact the POV-Ray
  22.     Team Coordinator by leaving a message in CompuServe's Graphics Developer's
  23.     Forum.  The latest version of POV-Ray may be found there as well.
  24.  
  25.     This program is based on the popular DKB raytracer version 2.12.
  26.     DKBTrace was originally written by David K. Buck.
  27.     DKBTrace Ver 2.0-2.12 were written by David K. Buck & Aaron A. Collins.
  28. ------------------------------------------------------------------------------
  29. More Info:
  30.     This Macintosh version of POV-Ray was created and compiled by Jim Nitchals
  31.     (Think 5.0) and Eduard Schwan (MPW 3.2), based (loosely) on the original
  32.     port by Thomas Okken and David Lichtman, with some help from Glenn Sugden.
  33.  
  34.     For bug reports regarding the Macintosh version, you should contact:
  35.     Eduard [esp] Schwan
  36.         CompuServe: 71513,2161
  37.         Internet: jl.tech@applelink.apple.com
  38.         AppleLink: jl.tech
  39.     Jim Nitchals
  40.         Compuserve: 73117,3020
  41.         America Online: JIMN8
  42.         Internet: jimn8@aol.com -or- jimn8@applelink.apple.com
  43.         AppleLink: JIMN8
  44. ------------------------------------------------------------------------------
  45. Change History:
  46.     930226    [esp]    Created
  47.     930605    [esp]    Changed initial frame # from zero to one
  48.     930728    [esp]    Added frameValS/frameValE, removed curr fields
  49.     930816    [esp]    Added pAnimPtr to SetCurrFrameVal
  50.     931001    [esp]    version 2.0 finished (Released on 10/4/93)
  51. ==============================================================================*/
  52.  
  53. #if !defined(ANIMATE_H)
  54. #define ANIMATE_H
  55.  
  56.  
  57. // Note that the working variables (current frame/clock) are not stored
  58. // in this structure (since they don't need to be saved), and are declared
  59. // as static globals in animate.c instead, with accessor functions.
  60. typedef struct
  61. {
  62.     short        frameVal0;        /* Initial animation frame, always implied one */
  63.     short        frameValS;        /* Current Frame to start session at */
  64.     short        frameValE;        /* Current Frame to end session at */
  65.     short        frameValN;        /* Final animation frame */
  66.     float        clockVal0;        /* initial "clock" value (1st frame) */
  67.     float        clockValN;        /* final "clock" value (last frame) */
  68. } AnimRec_t, *AnimPtr_t, **AnimHdl_t;
  69.  
  70.  
  71. // Set local current frame value (and calculate current clock value too)
  72. void SetCurrFrameVal(AnimPtr_t pAnimPtr, short newFrameVal);
  73.  
  74. // Return local current frame value
  75. short GetCurrFrameVal(void);
  76.  
  77. // Return local current clock value
  78. float GetCurrClockVal(void);
  79.  
  80. // Increment Frame counter if not already finished, and recalculate
  81. // new clock value.  Return false if past last frame
  82. Boolean IncToNextFrame(AnimPtr_t pAnimPtr);
  83.  
  84. /* Returns TRUE if user didn't cancel, and parms would be filled in */
  85. Boolean GetAnimateOptions(AnimPtr_t pAnimPtr);
  86.  
  87.  
  88. #endif // ANIMATE_H
  89.